package com.ldc.model.utils;

import com.ldc.common.constants.ConstantsCodeStatus;
import com.ldc.model.BaseBean;
import com.ldc.model.BaseListBean;

/**
 * @auther liudc
 * @since 2022/11/6
 */
public class ResultUtils {

    /**
     * 成功
     *
     * @param bean 数据
     * @param <T>  类型
     * @return 结果
     */
    public static <T> BaseBean<T> toResult(T bean, int errorCode, String errorMsg) {
        BaseBean<T> data = new BaseBean<>();
        data.setData(bean);
        data.setErrorCode(errorCode);
        data.setErrorMsg(errorMsg);
        return data;
    }

    /**
     * 成功
     *
     * @param bean 数据
     * @param <T>  类型
     * @return 成功
     */
    public static <T> BaseBean<BaseListBean<T>> toListSuccess(BaseListBean<T> bean) {
        return toResult(bean, ConstantsCodeStatus.SUCCESS_CODE, "OK");
    }

    /**
     * 失败
     *
     * @param bean 数据
     * @param <T>  类型
     * @return 失败
     */
    public static <T> BaseBean<T> toFailed(T bean) {
        return toResult(bean, ConstantsCodeStatus.FAILED_CODE, "");
    }

    /**
     * 失败
     *
     * @param bean 数据
     * @param <T>  类型
     * @return 失败
     */
    public static <T> BaseBean<T> toFailed(T bean, int statusCode) {
        return toResult(bean, statusCode, "");
    }

    /**
     * 成功
     *
     * @param bean 数据
     * @param <T>  类型
     * @return 成功
     */
    public static <T> BaseBean<T> toSuccess(T bean) {
        return toResult(bean, ConstantsCodeStatus.SUCCESS_CODE, "OK");
    }


    /**
     * 登录成功
     *
     * @param bean 数据
     * @param <T>  类型
     * @return 登录成功
     */
    public static <T> BaseBean<T> toLoginSuccess(T bean) {
        return toSuccess(bean);
    }

    /**
     * 登录成功
     *
     * @param bean 数据
     * @param <T>  类型
     * @return 登录失败
     */
    public static <T> BaseBean<T> toLoginFailed(T bean) {
        return toResult(bean, ConstantsCodeStatus.LOGIN_FAILED_CODE, "登录失败~");
    }
}
